package de.hsos.ooad.nutzerverwaltung.interaktiv;

public class Zugriffsdialog {
	
	private Zugriffsverwaltung zv= new Zugriffsverwaltung();
	
	public void nutzungsdialog(){
		int eingabe=-1;
		while(eingabe!=0){
			System.out.println(
					"---------------\n"+
					"Was wollen Sie machen?\n"
					+"(0) Programm beenden\n"
					+"(1) Nutzer wechseln (anmelden)\n"
					+"(2) Nutzer hinzufuegen\n"
					+"(3) Passwort aendern\n"
					+"(4) Login veraendern\n"
					+"(5) Alle Nutzer anzeigen");
			eingabe=Eingabe.leseInt();
			switch(eingabe){
			case 1:
				nutzerwechseln();
				break;
			case 2:	
				nutzerHinzufuegen();
				break;
			case 3:
				passwortAendern();
				break;
			case 4:
				loginVeraendern();
				break;
			case 5:
				nutzerAnzeigen();
				break;
			}
		}
		System.out.println("Programm beendet!");
	}

	private void nutzerAnzeigen() {
		zv.nutzerAnzeigen();
	}

	private void loginVeraendern() {
		System.out.print("Altes login: ");
		String alt=Eingabe.leseString();
		System.out.print("Neues Login: ");
		String neu=Eingabe.leseString();
		boolean ergebnis=zv.loginAendern(alt, neu);
		if(ergebnis)
			System.out.println("Loginaenderung erfolgreich.");
		else	
			System.out.println("Loginaenderung nicht erfolgreich.");
	}

	private void nutzerHinzufuegen() {
		System.out.print("Neues Login: ");
		String login=Eingabe.leseString();
		System.out.print("Zugehöriges Passwort: ");
		String passwort=Eingabe.leseString();
		int eingabe=0;
		while(eingabe<1 || eingabe>3){
			System.out.println("Welche Rolle?\n"
					+"(1) Systemadministrator\n"
					+"(2) Projektadministrator\n"
					+"(3) Entwickler");
			eingabe=Eingabe.leseInt();
		}
		boolean ergebnis=true;;
		switch(eingabe){
			case 1: 
				ergebnis=zv.systemadministratorHinzufuegen(login, 
						passwort);
				break;
			case 2:
				ergebnis=zv.projektadministratorHinzufuegen(login, 
						passwort);
				break;
			case 3:
				ergebnis=zv.entwicklerHinzufuegen(login, 
						passwort);
				break;
		}
		if(ergebnis)
			System.out.println("Einfuegen erfolgreich.");
		else	
			System.out.println("Einfuegen nicht erfolgreich.");
	}

	private void passwortAendern() {
		System.out.print("Altes Passwort: ");
		String altesPasswort=Eingabe.leseString();
		System.out.print("Neues Passwort: ");
		String neuesPasswort=Eingabe.leseString();
		boolean ergebnis=zv.passwortAendern(altesPasswort, neuesPasswort);
		if(ergebnis)
			System.out.println("Passwortaenderung erfolgreich.");
		else	
			System.out.println("Passwortaenderung nicht erfolgreich.");
	}

	private void nutzerwechseln() {
		System.out.print("Login: ");
		String login=Eingabe.leseString();
		System.out.print("Passwort: ");
		String passwort=Eingabe.leseString();	
		boolean ergebnis=zv.authentifizieren(login, passwort);
		if(ergebnis)
			System.out.println("Anmeldung erfolgreich.");
		else	
			System.out.println("Anmeldung nicht erfolgreich.");
	}
}
